package oa.hleast.xswl.service.questionnaire.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import oa.hleast.xswl.mapper.questionnaire.QmsAnswerMapper;
import oa.hleast.xswl.mapper.questionnaire.QmsProblemMapper;
import oa.hleast.xswl.mapper.questionnaire.QmsQuestionnaireMapper;
import oa.hleast.xswl.pojo.domain.questionnaire.QmsAnswer;
import oa.hleast.xswl.pojo.domain.questionnaire.QmsProblem;
import oa.hleast.xswl.pojo.domain.questionnaire.QmsQuestionnaire;
import oa.hleast.xswl.service.questionnaire.QmsAnswerService;
import oa.hleast.xswl.service.questionnaire.QmsProblemService;
import oa.hleast.xswl.service.questionnaire.QmsQuestionnaireService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * @author: 302
 * @date: 2021-07-19 18:43:06
 * @description: 问卷问题表(QmsQuestionnaire)接口实现
 */
@Service("qmsQuestionnaireService")
public class QmsQuestionnaireServiceImpl extends ServiceImpl<QmsQuestionnaireMapper, QmsQuestionnaire> implements QmsQuestionnaireService {

    @Autowired
    private QmsProblemMapper qmsProblemMapper;

    @Autowired
    private QmsAnswerMapper qmsAnswerMapper;

    @Autowired
    private QmsQuestionnaireMapper qmsQuestionnaireMapper;

    @Autowired
    private QmsQuestionnaireService qmsQuestionnaireService;

    @Autowired
    private QmsProblemService qmsProblemService;

    @Autowired
    private QmsAnswerService qmsAnswerService;

    /**
     * 添加试卷
     *
     * @param questionnaire
     * @return
     */
    @Override
    public boolean addQuestionnaire(QmsQuestionnaire questionnaire) {
        if (questionnaire == null) {
            return false;
        }
        int insert = qmsQuestionnaireMapper.insert(questionnaire);
        if (insert == 1) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * 修改试卷
     *
     * @param qmsQuestionnaire
     * @return
     */
    @Override
    public boolean updateQuestionnaire(QmsQuestionnaire qmsQuestionnaire) {
        if (qmsQuestionnaire == null) {
            return false;
        }
        qmsQuestionnaire.setGmtModified(new Date());
        /*UpdateWrapper<QmsQuestionnaire> updateWrapper=new UpdateWrapper<>();
        updateWrapper.eq("","");*/
        int update = qmsQuestionnaireMapper.updateById(qmsQuestionnaire);
        if (update == 1) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * 删除试卷
     *
     * @param ids id集合
     * @return
     */
    @Override
    public boolean deleteQuestionnaire(String ids) {
        if (ids == null) {
            return false;
        }

        List<String> idString = Arrays.asList(ids.split(","));
        idString.forEach(questionnaireId->{
            qmsProblemService.remove(new LambdaQueryWrapper<QmsProblem>().eq(QmsProblem::getQuestionnaireId,questionnaireId));
            qmsAnswerService.remove(new LambdaQueryWrapper<QmsAnswer>().eq(QmsAnswer::getQuestionnaireId,questionnaireId));
        });

        boolean statue = qmsQuestionnaireService.removeByIds(idString);

        return statue;
    }
}
